package banco;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;

import modelo.Aluguel;

public class BDAluguel extends Conexao{
	
	private String sql;
	private PreparedStatement comando;
	
	public ArrayList<Aluguel> selectAll() {
		
		super.getConexaoMySQL();
		ResultSet rs;
		sql = "Select * from Aluguel";
		ArrayList<Aluguel> resultados = new ArrayList<Aluguel>();
		try{			
			comando = connection.prepareStatement(sql);
			rs = comando.executeQuery();
			while (rs.next()) {  
				Aluguel temp = new Aluguel();  
	           
				temp.setId(rs.getInt("ID"));
	            temp.setDataInicio(rs.getDate("DataInicio"));
	            temp.setDataFim(rs.getDate("DataFim"));
	            temp.setCpf(rs.getLong("CPF"));
	            temp.setPlaca(rs.getString("Placa"));
	            temp.setValor(rs.getInt("Valor"));
	            temp.setFinalizado(rs.getBoolean("Finalizado"));
	            
	            resultados.add(temp);
	            
			} 
			return resultados;
		}
		catch(SQLException e){
			//TODO Tratar erros
			return null;
		}
		finally{
			super.FecharConexao();
		}
		
		
	}

	
	public boolean insert(Aluguel a){
		
		super.getConexaoMySQL();
		sql = "INSERT INTO Aluguel (ID, CPF, Placa, DataInicio, DataFim, Valor, Finalizado) VALUES (?,?,?,?,?,?,?)";
				
			try {
				
				comando = connection.prepareStatement(sql);
				comando.setInt(1, a.getId());
				comando.setLong(2, a.getCpf());
				comando.setString(3, a.getPlaca());
				comando.setDate(4, (java.sql.Date) a.getDataInicio());
				comando.setDate(5, (java.sql.Date) a.getDataFim());
				comando.setDouble(6, a.getValor());				
				comando.setBoolean(7, a.isFinalizado());				
				
				comando.executeUpdate();
				return true;
				
			} 
			catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return false;
			}
			finally{
				super.FecharConexao();
			}
			
		}
	
	
		public boolean inserirDadosDoVeiculoBanco(String placa, Date datainicio, Date datafim){
			super.getConexaoMySQL();
			Aluguel a = new Aluguel();
			sql = "INSERT INTO Aluguel (ID, CPF, Placa, DataInicio, DataFim, Valor, Finalizado) VALUES (?,?,?,?,?,?,?)";
					
				try {
					
					comando = connection.prepareStatement(sql);
					comando.setInt(1, a.getId());
					comando.setString(3, a.getPlaca());
					comando.setDate(4, (java.sql.Date) a.getDataInicio());
					comando.setDate(5, (java.sql.Date) a.getDataFim());
					comando.executeUpdate();
					return true;
					
				} 
				catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
					return false;
				}
				finally{
					super.FecharConexao();
				}
			
		}


		public boolean setPeriodoBanco(String placa, Date dataInicio,
				Date dataFim) {
			// TODO Auto-generated method stub
			sql = "INSERT INTO Aluguel (ID, CPF, Placa, DataInicio, DataFim, Valor, Finalizado) VALUES (?,?,?,?,?,?,?)";
			
			try {
				
				comando = connection.prepareStatement(sql);
				comando.setString(2,null);
				comando.setString(3, placa);
				comando.setDate(4, (java.sql.Date) dataInicio);
				comando.setDate(5, (java.sql.Date) dataFim);
				comando.setInt(6,0);
				comando.setBoolean(7,false);
				comando.executeUpdate();
				return true;
			} 
			catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return false;
			}
			finally{
				super.FecharConexao();
			}
		}


		
	}
